package com.accounting.client.remote;

import java.util.List;

import com.accounting.client.remote.obj.PackageInfo;
import com.accounting.client.remote.transfer.AddPackageRequest;
import com.accounting.client.remote.transfer.SearchPackageRequest;
import com.accounting.client.remote.transfer.UpdatePackageRequest;

import corelib.client.jsonrpc.RemoteJSONService;
import corelib.client.search.PagingRequest;
import corelib.client.search.PagingResult;

public interface PackageService extends RemoteJSONService {
	
	public String  TrackPackage(String passport, String packageId);
	public boolean RemovePackage(String passport, String packageId);
	public boolean RemovePackages(String passport, String reference);
	 
	public boolean AddPackage(String passport, AddPackageRequest request);
	public boolean UpdatePackage(String passport, UpdatePackageRequest request);
	public boolean UpdatePackageStatus(String passport, String packageId, int status);
	public boolean UpdatePackageData(String passport, String packageId, String data);
	
	public PagingResult<PackageInfo> ListPackages(String passport, PagingRequest request);
	public List<PackageInfo> ListPackagesByReference(String passport, String referenceId);
	public PagingResult<PackageInfo> SearchPackages(String passport, SearchPackageRequest request);
	
}
